package ln.javatest.day11.demo01;
/*
java.lang.StringBuilder类：字符串缓冲区，可以提高字符串的效率
构造方法：
    public StringBuilder():构造一个空的StringBuilder容器。
    public StringBuilder(String str)：构造一个StringBuilder容器，并把字符串添加进去
成员方法：
    public StringBuilder append(...):添加任意类型数据的字符串形式，并返回当前对象自身。
    向缓冲区内容不断追加数据。
    参数：
        可以是任意的数据类型
    public  StringBuilder reverse():反转内容。
    public String toString():将缓冲区内容转换为字符串
*/

import com.sun.security.jgss.GSSUtil;

public class Demo01StringBuilder {
    public static void main(String[] args) {
        //有参/无参构造方法
        StringBuilder sb = new StringBuilder();
        System.out.println(sb); //
        StringBuilder sb1 = new StringBuilder("abc");
        System.out.println(sb1);  //abc
        //成员方法
        //使用append方法网StringBuilder中添加数据
        //向缓冲区内容不断追加数据。
        //append方法返回的是this
        StringBuilder sb2 = sb1.append("def");
        System.out.println(sb);  //
        System.out.println(sb1); //abcdef
        System.out.println(sb2); //abcdef
        System.out.println(sb1 == sb2); //true 两个对象是同一个对象，地址相同
        //使用append方法无需接受返回值
        sb1.append("efg");
        sb1.append("123");
        System.out.println(sb1);  //abcdefefg123
        System.out.println(sb2);  //abcdefefg123
        //链式编程：方法的返回值是一个对象，可以根据对象继续调用方法
        sb1.append("7").append("9").append("中");
        System.out.println(sb1);  //abcdefefg12379中
        System.out.println(sb2);  //abcdefefg12379中
        //reverse方法：将缓冲区内容进行反转
        sb1.reverse();
        System.out.println(sb1);  //中97321gfefedcba
        System.out.println(sb2);  //中97321gfefedcba
        //toString方法：将缓冲区内容转换为字符串
        String str = "Hello";
        System.out.println("str:" + str);  //str:Hello
        StringBuilder bu = new StringBuilder(str);
        //往stringBuilder中添加数据
        bu.append("world");
        System.out.println("bu:" + bu);  // bu:Helloworld
        System.out.println("str:"+ str);  //str:Hello
        //转换为字符串
        String s = bu.toString();
        System.out.println("s:" + s);  //s:Helloworld

    }
}
